专利摘要:
ハイブリッド媒体ストレージアーキテクチャは、ハイブリッド記憶媒体として編成され、互いに協調し、ストレージシステムの全体的記憶空間を提供する複数の異なる記憶媒体を制御するように構成されたログ構造ファイルシステムを有する。ログ構造ファイルシステムは、データの初期配置、及びマイグレーションを実施すると共に、ハイブリッド記憶媒体の複数の記憶空間場所の間におけるデータのきめ細かな粒度で書込みアロケーションを実施し、それによって媒体のパフォーマンス特性を向上させるように構成される。例えばデータのタイプに対してヒューリスティック及びポリシーを定義し、実施することによって、ファイルシステムは、異なる媒体のいずれにもデータを初期配置することができ、その後、きめ細かな粒度で、手動施行を必要とすることなく、媒体間でデータを統合することができる。
公开号:JP2011515727A
申请号:JP2010546773
申请日:2009-02-11
公开日:2011-05-19
发明作者:キンメル,ジェフリー,エス;クレイマン,スティーブン,アール;ミラー,スティーブン,シー
申请人:ネットアップ,インコーポレイテッド;
IPC主号:G06F12-00
专利说明:

[0001] [関連出願]
本願発明は、2008年2月12日に出願された「HYBRIDMEDIA STORAGE SYSTEMARCHITECTURE」と題するキメル他による本件と同じ譲受人の同時係続の米国仮出願第61/028,107号に基く優先権の利益を主張するものであり、この米国仮出願の内容は参照により本明細書に援用される。]
[0002] 本願発明は、2009年2月11日に出願された「CACHE-BASED STORAGE SYSTEMARCHITECTURE」と題するクレイメン他による本件と同じ譲受人の同時係続の米国特許出願第[代理人文書整理番号112056−0488U]号にも関連する。]
[0003] [発明の分野]
本願発明は、ストレージシステムに関し、特に、ストレージシステムのストレージアーキテクチャに関する。]
背景技術

[0004] [発明の背景]
ストレージシステムは、不揮発性メモリ及びディスクのような書込み可能な永久記憶媒体におけるデータの編成に関連するストレージサービスを提供するコンピュータである。ストレージシステムは、情報配送のクライアント/サーバモデルに従って動作するように構成される場合があり、それによって多数のクライアント(例えば、アプリケーション)が、システムによって提供されるデータにアクセスすることが可能となる。ファイルシステムは通常、ファイルシステム上のデータを扱うストレージアーキテクチャ、並びにランダムアクセスパターン及びストリーミングアクセスパターンを有する種々のブロックフォーマットを採用している。ディスクは一般に、優れたストリーミング処理能力(例えば、大きな連続ブロックの読み出し、又は「トラック読み出し」)を備えているが、ランダムアクセス(すなわち、個々のディスクセクタの読出し、及び書込み)については、良好に機能しない。換言すれば、ディスクは、ストリーミングモード又はシーケンシャルモードにおいては非常に能率的に動作するが、小さなランダムアクセスブロックオペレーションは、ディスクの処理能力を実質的に低速化させることがある。]
[0005] ストレージシステムのストレージアーキテクチャの処理能力を向上させる一つの方法は、ハイブリッド記憶媒体を使用することであり、これは例えば、固体デバイス(SSD)のような比較的高価な電子記憶装置をハードディスクドライブ(HDD)のような比較的安価な磁気記憶装置と混合し、システムの全体的な記憶空間を得ることによってなされる。通常、そのような従来のストレージシステムのユーザ又は管理者は、SSDに記憶することによって非常に大きな恩恵を受けることができる頻繁にアクセスされる(すなわち、「人気の有る」)データを識別し、分離する一方、残りのデータはHDDに記憶している。しかしながら、そのような人気の有るデータの識別、及び分離は通常、手動で実施又は施行されるため、管理者による時間を要するほどの努力が必要となる。]
[0006] さらに、そのような従来のシステムの管理者は通常、1以上のボリュームを作成するために、SSD、及びHDDの物理的レイアウトを構成するための種々の判断を実施し、各ボリュームは、データを編成するために使用されるボリュームブロック番号(vbn)記憶空間の論理構成を有することになる。その後管理者は、データの静的割当て、すなわち固定割当てを採用するために種々の判断を実施する場合があり、例えば、第1の範囲のvbnに関連するデータは、SSDに基く一群の記憶装置に置く一方、第2の範囲のvbnに関連するデータは、HDDに基く別の一群の記憶装置に置く場合がある。しかしながら、そのような固定データ割当て判断の実施は、特に割当てに変更があったときに、時間を要し、高価なものとなる。]
課題を解決するだめの手段

[0007] [発明の概要]
本発明は、ハイブリッド記憶媒体として編成され、互いに協働し、ストレージシステムの全体的記憶空間を提供する複数の異なる記憶媒体を制御するように構成された、ログ構造ファイルシステムを有するハイブリッド媒体ストレージアーキテクチャを提供することによって、従来技術の欠点を克服する。その目的のために、ログ構造ファイルシステムは、データの初期配置、及びマイグレーションを実施すると共に、ハイブリッド記憶媒体の種々の記憶空間位置の間におけるデータのきめ細かな粒度の書込みアロケーションを実施するように構成され、それによって、媒体のパフォーマンス特性を向上させる。ファイルシステムは、例えばデータのタイプに関連するヒューリスティック及びポリシーを定義し、実施することにより、異なる媒体の何れに対してもデータを初期配置(書込み)することができ、その後、きめ細かな粒度で、及び手動施行を必要とせずに、媒体間においてデータをマイグレーション(移動)することができる。]
[0008] 一実施形態において、ハイブリッド記憶媒体は、固体デバイス(SSD)のような比較的高価な電子記憶媒体と、ハードディスクドライブ(HDD)のような比較的安価な磁気記憶媒体とを含む。HDDは、ログ構造ファイルシステムのデータレイアウトフォーマットに従って、関連(ファイル)データの種々の領域に分配される。その後、ファイルシステムは、例えばデータを置くことが可能なHDD上の種々のブロック位置を指定することによって、HDDの種々の領域内へのデータの配置を実施することができる。さらに、ファイルシステムは、ログ構造技術を使用して、SSDのランダム書込み処理能力を向上させ、例えばSSDとHDDの間において、きめ細かな粒度でデータを移動させる。]
[0009] 本発明の上記の利点、及び他の利点は、添付の図面と併せて下記の説明を読むことにより、よりよく理解することができる。図面中の同じ参照符号は、同一の要素、又は機能的に類似の要素であることを示している。]
図面の簡単な説明

[0010] 本発明と共に有利に使用されるストレージシステムを含む環境を示す略ブロック図である。
本発明と共に有利に使用されるストレージオペレーティングシステムを示す略ブロック図である。
本発明のハイブリッド媒体ストレージアーキテクチャを示す略ブロック図である。
本発明によるストレージシステムのハイブリッド媒体・ストレージアーキテクチャの例示的動作手順を示すフロー図である。
本発明と共に有利に使用されるRAID集合体を示す略ブロック図である。]
実施例

[0011] [例示的実施形態の詳細な説明]
図1は、本発明と共に有利に使用されるストレージシステムを含む環境100を示す略ブロック図である。ストレージシステム120は、書込み可能な永久的電子又は磁気記憶媒体における情報の編成に関連するストレージサービスを提供するコンピュータである。その目的のために、ストレージシステム120は、システムバス125によって相互接続されたプロセッサ122、メモリ124、ネットワークアダプタ126、ストレージアダプタ128、及び不揮発性ログ記憶装置(NVLOG)146を含む。ストレージシステム120は、仮想化システムを実施し、情報を例えばファイルや論理ユニット(LUN)のようなデータコンテナの階層構造として電子記憶媒体及び磁気記憶媒体140、150上に論理編成するストレージオペレーティングシステム200をさらに含む。] 図1
[0012] メモリ124は、本明細書に記載する種々の実施形態に関連するソフトウェアプログラム、及び関連データ構造を記憶するためにプロセッサ及びアダプタによりアドレス指定可能な種々の記憶場所を含む。さらに、プロセッサ及びアダプタは、そうしたソフトウェアプログラムを実行し、データ構造を操作するように構成された処理要素、及び/又は論理回路を含む場合がある。ストレージオペレーティングシステム200は、その種々の部分が通常、メモリに常駐し、処理要素によって実行され、とりわけシステムにおいて実行されるソフトウェアプロセスを支援するストレージオペレーションを実施することにより、ストレージシステムを機能的に編成する。当業者には明らかなように、本明細書に記載する種々の実施形態に関連するプログラム命令の記憶及び実行には、他の処理手段、及び種々のコンピュータ読取可能媒体を含む他の記憶手段を使用してもよい。]
[0013] NVLOG146は例えば、バックアップバッテリー、又はストレージシステムに故障が発生したときに情報を保持する機能を備えた他の内蔵最終状態保持機能(例えば、不揮発性半導体メモリ)を有する固体の不揮発性ランダムアクセスメモリ(NVRAM)アレイとして実施される電子記憶装置を含む。一実施形態において、NVLOG146は、書込み命令のような特定のデータアクセス命令を一時的に記憶(ログに記録)するために使用される。そうした特定のデータアクセス命令は、当該命令に関連するデータを電子記憶媒体、及び/又は磁気記憶媒体に記憶する前に、例えばシステムのコンシステンシー・ポイント(CP)のようなコンシステンシー・モデル・イベントの際に、仮想化システムによって処理される。コンシステンシー・ポイントの一例は、1998年10月6日に発行された「Method for Maintaining Consistent States of a File System and for Creating User-Accessible Read-Only Copies of a File System」と題するデビッド・ヒッツ他によるネットワーク・アプライアンス・インコーポレイテッドに譲渡された米国特許第5,819,292号に記載されており、この米国特許は、参照により本明細書に援用される。]
[0014] ネットワークアダプタ126は、コンピュータネットワーク160を介してストレージシステム120をクライアント110に接続するために必要とされる物理的、電気的、又は信号的回路を含み、コンピュータネットワーク160は、ローカル・エリア・ネットワークのようなポイント・ツー・ポイント接続を含む場合がある。クライアント110は、データベースアプリケーションのようなアプリケーション112を実行するように構成された汎用コンピュータであってもよい。また、クライアント110は、情報配送のクライアント/サーバモデルに従って、ストレージシステム120との間で情報をやりとりする場合がある。すなわち、クライアントがストレージシステムにサービスを要求すると、ストレージシステムは、例えばネットワーク160を介してパケットをやりとりすることによって、クライアントから要求されたサービスの結果を返す場合がある。ファイル形態の情報をアクセスする場合、クライアントは、コモン・インターネット・ファイル・システム(CIFS) over TCP/IPプロトコル、又はネットワーク・ファイル・システム(NFS) over TCP/IPプロトコルようなファイルベースのアクセスプロトコルを有するパケットを発行する場合がある。一方クライアントは、LUN形態の情報をアクセスする場合、スモール・コンピュータ・システム・インタフェース(SCSI) over TCP/IP(iSCSI)プロトコル、又はSCSI over FC(FCP)プロトコルのようなブロックベースのアクセスプロトコルを有するパケットを発行する場合がある。]
[0015] ストレージアダプタ128は、ストレージシステム上で実行されるストレージオペレーティングシステム200と協働し、クライアントから要求された情報をアクセスする。情報は、例えばハードディスクドライブ(HDD)として実施される磁気記憶媒体150、並びに、例えばストレージシステムに電力損失が発生したときにデータを保持することが可能な永久的記憶空間を提供するように構成された電子記憶媒体140に記憶される場合がある。従って、電子記憶媒体140は、バックアップバッテリ、又はアレイに何らかの電力損失が発生したときにメモリの最終状態を保持するための他の内蔵最終状態保持機能(例えば、フラッシュメモリ)を備えた、固体デバイス(SSD)の大容量ランダムアクセスメモリアレイとして実施される場合がある。]
[0016] 一実施形態において、SSDのためのストレージアダプタは、HDDと共用される場合がある。ただし、当業者には分かるように、SSDとHDDは別々のアダプタを有していてもよい。ストレージアダプタは、従来の高性能ファイバチャネル・シリアルリンク・トポロジーのようなI/O相互接続構成を介してHDD、及びSSDに接続するための入出力(I/O)インタフェース回路を含む。ただし、当業者には分かるように、SSD記憶装置は、ストレージアダプタの代わりに、例えばPCIによって、より直接的に接続してもよい。情報は、ストレージアダプタによって読み出され、必要に応じてプロセッサ122(又は、アダプタ128)によって処理された後、システムバス125を介してネットワークアダプタ126へ転送され、そこで情報はパケットの形に整形され、クライアント110へと戻される。]
[0017] 図2は、本発明と共に有利に使用されるストレージオペレーティングシステム200を示す略ブロック図である。ストレージオペレーティングシステムは、ネットワークドライバ層(例えば、イーサネットドライバ)、ネットワークプロトコル層(例えば、インターネットプロトコル層、並びにその支援搬送機構であるトランスポート・コントロール・プロトコル層、及びユーザ・データグラム・プロトコル層)、及び、ネットワーク・プロトコル・スタック210として構成されるファイルシステムプロトコルサーバ層(例えば、CIFSサーバ、NFSサーバ等)を含む一連のソフトウェア層を含む。さらに、ストレージオペレーティングシステム200は、RAID(Redundant Array of Independent (or Inexpensive) Disks)プロトコルのような記憶媒体プロトコルを実施する媒体記憶層220と、例えばスモール・コンピュータ・システム・インタフェース(SCSI)プロトコルのような記憶媒体アクセスプロトコルを実施する媒体ドライバ層230とを含む。本明細書に記載するように、媒体記憶層220は、代替的にパリティ保護(RAID)モジュールとして実施してもよく、RAIDコントローラのような独立したハードウェア構成要素として実施してもよい。] 図2
[0018] 記憶媒体ソフトウェア層をネットワークプロトコル層及びファイルシステムプロトコル層に橋渡しするのは、ログ構造ファイルシステム240のようなファイルシステムとして実施される場合がある仮想化システムである。ログ構造ファイルシステムは例えば、電子記憶媒体及び磁気記憶媒体140、150に対する読出し処理能力及び書込み処理能力を向上させる種々のデータレイアウト技術を実施する場合がある。例えば、後で詳しく説明するように、ログ構造ファイルシステム240は、媒体のパフォーマンス特性を向上させるために、異なる記憶媒体間におけるデータの配置、マイグレーション、及び書込みアロケーションを実施するように構成される場合がある。]
[0019] 本明細書において、「ストレージオペレーティングシステム」という用語は、一般に、データアクセスを管理するストレージ機能を実施するためにコンピュータ上で実行することが可能なコンピュータ実行可能コードを意味し、ストレージシステム120の場合、汎用オペレーティングシステムのデータアクセスセマンティックを実施する場合がある。また、ストレージオペレーティングシステムは、マイクロカーネルとして実施することも、UNIX(R)又はWindowsNT(R)のような汎用オペレーティングシステムで動作するアプリケーションプログラムとして実施することも、あるいは、本明細書に記載するようなストレージアプリケーション用に構成された構成変更機能を有する汎用オペレーティングシステムとして実施することもできる。]
[0020] さらに、当業者には分かるように、本明細書に記載する発明は、如何なるタイプの特殊目的(例えば、ファイルサーバ、ファイラー、又はストレージサービスを提供するアプライアンス)のコンピュータにも、汎用コンピュータにも適用することができ、例えば、ストレージシステムとして実施され、又はストレージシステムを含むように実施されるスタンドアロンのコンピュータ、又はその一部にも適用することができる。さらに、本発明の教示は、限定はしないが、例えば、ネットワーク・アタッチト・ストレージ環境、ストレージ・エリア・ネットワーク、及びクライアント又はホストコンピュータに直接取り付けられるディスクアセンブリを含む種々のストレージシステムアーキテクチャに適合させることができる。従って、「ストレージシステム」という用語は、ストレージ機能を実施するように構成され、他の装置又はシステムに関連する任意のサブシステムだけでなく、そのような構成を含むものとして、広い意味で解釈すべきである。]
[0021] 本発明は、ハイブリッド記憶媒体として編成され、互いに協働し、ストレージシステムの全体的記憶空間を提供する複数の異なる記憶媒体を制御するように構成されたログ構造ファイルシステムを有するハイブリッド媒体ストレージアーキテクチャに関する。その目的のために、ログ構造ファイルシステムは、データの初期配置、及びマイグレーション、並びにハイブリッド記憶媒体の種々の記憶空間位置の間におけるデータのきめ細かな粒度で書込みアロケーションを実施するように構成され、それによって媒体のパフォーマンス特性を向上させる。ファイルシステムは、例えばデータのタイプに関連するヒューリスティック及びポリシーを定義し、実施することにより、異なる媒体の何れに対してもデータを初期配置(書込み)することができ、以後、媒体間においてきめ細かな粒度で、及び手動施行を必要とせずに、データをマイグレーション(移動)することができる。]
[0022] 一実施形態において、ハイブリッド記憶媒体は、比較的低速なディスク又はHDDのアレイ(以後、「HDDアレイ」)を使用して構成された比較的安価な磁気記憶媒体150を含む。ハイブリッド記憶媒体は、不揮発性NANDフラッシュデバイス又はSSDのアレイ(以後、「SSDアレイ」)を使用して構成された比較的高価な電子記憶媒体をさらに含む。フラッシュデバイスは例えば、優れた(ランダム)読出し処理能力を有するブロック指向のデバイスである。すなわち、フラッシュデバイスに対する読出し処理は、主にその記憶態様上の理由から、書込み処理に比べて実質的に高速である。ただし、当業者には分かるように、他のブロック指向の不揮発性電子デバイス又は磁気デバイスを、本発明の教示に従って使用してもよい。]
[0023] フラッシュデバイスに記憶されたデータは、(例えば、読出し処理、及び書込み処理によって)ページ単位でアクセスされる。単位ページは、例えば4キロバイト(kB)であるが、他のページサイズ(例えば2kB)も、本発明と共に有利に使用することができる。ページ上に既に書き込まれたデータを書き換えるためには、ページを消去しなければならないが、消去単位は、複数(例えば、64)のページからなるブロックである。すなわち、消去ブロックは、256kBのサイズを有する。従って、デバイスに記憶されたデータにはページ単位でアクセス(読出し及び書込みすることが出来ても、デバイスのクリア又は消去は、ブロック単位で行われる。フラッシュデバイスの書込み処理能力が遅い理由は、デバイス上の空き空間の管理に関係している。すなわち、1ブロックのページに対する書込み処理が可能なだけの十分な記憶空間が無い場合、1ブロック分のページ全体を消去し、将来の割当てに備えて開放できるようにするために、デバイス内で、正規のデータを他のブロックへ移動させなければならない。フラッシュデバイスのこのような書込み処理は一般に、書込み処理能力が要求されるシステムにおけるフラッシュデバイスの有効性を制限する。本明細書に記載するログ構造ファイルシステムは、一つには、SSDアレイのフラッシュデバイスからの書込み処理能力を向上させるために使用される。]
[0024] ハイブリッド媒体記憶アーキテクチャ
図3は、本発明のハイブリッド記憶媒体ストレージアーキテクチャ300の構成を示す略ブロック図である。このアーキテクチャは、SSDアレイ340のSSD330、及びHDDアレイ350のHDD360の動作を制御し、ストレージシステム120の全体的記憶空間を得るために、パリティ保護(RAID)モジュール320の上に配置されたログ構造ファイルシステム240を含む。ストレージアダプタ128は、媒体(フラッシュ又はディスク)をアクセスするためのストレージプロトコルを実施する。一実施形態では、HDDアレイ350及び/又はSDDアレイ340をアクセスするために使用される1以上のストレージアダプタ128が存在する場合がある。後で詳しく説明するように、SSDアレイ340の各SSDは、変換論理回路336を実施する独自の内部SSDコントローラ335を有する。すなわち、アレイ340の各SSDは、例えばSSDコントローラ335によって提供される関連変換論理回路336を有する。] 図3
[0025] SSDコントローラ335は、ジオメトリ情報をRAIDモジュール320にエキスポートする。ジオメトリ情報は、例えば、デバイスのモデルタイプ、及び例えばモジュール320によって使用されるデバイスブロック番号(dbn)に換算した場合のデバイスのサイズ(ブロック数)を含む場合がある。SSDアレイ340の場合、dbnは、例えばSSDコントローラ335がRAIDモジュールに提示する論理アドレスであり、SSD330内部の変換マッピングによって、フラッシュ物理アドレスに変換される。SSDコントローラは、例えば1セクタインタフェースあたり512バイトを提示する場合があるが、このサイズは、例えば4kBのブロックサイズで行われるランダム書込みアクセスに合わせて最適化される場合がある。]
[0026] 上記のように、ログ構造ファイルシステム240は、電子記憶媒体140のSSDアレイ340に対する読出し及び書込み処理能力、並びに磁気記憶媒体150のHDDアレイ350に対する読出し及び書込み処理能力を向上させるデータレイアウト技術を実施する。例えば、ログ構造ファイルシステムは、ファイルのようなデータコンテナに対する高速書込みアクセスを可能にする第1のデータレイアウトフォーマットを有することにより、SSDアレイ340に対するランダム(及びシーケンシャル)データアクセス処理の能率的なサービス提供を可能にする。その目的のために、ファイルシステムは、例えばwrite anywhere技術の第1のセットを実施し、SSDアレイ340のSSD330上の空いている利用可能な空間内の任意の場所にデータを配置することを可能にする。]
[0027] ファイルシステム240のwrite anywhere特性は、書込み処理能力を向上させるが、しばしばシーケンシャルデータを断片化させることがあり、断片化は、HDD360のような特定の記憶媒体について処理能力の劣化として現れることがある。なぜなら、読出し処理(特に、シーケンシャル読出し処理)の際に、断片化されたデータをアクセスするための物理的位置決めが必要になるからである。ただし、この実施形態では、SSDアレイ340がSSD330から構成されているので、ランダムアクセスは一貫性を有する(すなわち、HDDを使用する場合のように、物理的位置決めに基かない)。従って、ログ構造ファイルシステム240は、SSDと協働し、アレイのシーケンシャル読出し処理能力を劣化させることなく書込み処理能力を向上させる、SSDアレイにとって理想的なデータレイアウトエンジンを提供する。]
[0028] さらに、ログ構造ファイルシステム240は、HDDアレイ350に記憶されたデータに対する能率的なサービス提供を可能にするために、HDDに記憶された種々の大きなファイルに対する高速シーケンシャル読出しアクセスを可能にする第2のデータレイアウトフォーマットを有する。その目的のために、ファイルシステムは、例えば種々の技術の第2のセットを実施し、行列の次元により特徴付けられるHDD上のデータブロックのアレイを表現する例えば「テトリス」I/Oトランザクションのようなデータレイアウト構成を使用して、データをストリーミング形態でHDD360へ移動させる。そのようなI/Oトランザクションの一例は、2007年4月3日に発行された「Method for Writing Contiguous Arrays of Stripes in a RAID Storage System Using Mapped Block Writes」と題するスティーブン・R・クレイマン他によるネットワーク・アプライアンス・インコーポレイテッドに譲渡された米国特許第7,200,715号に記載されており、この米国特許は、参照により本明細書に援用される。ここで言う「次元」の一例は、各HDD上の一つのトラック(すなわち、列次元)×RAIDグループ幅(すなわち、行次元)であり、その場合トラックの深さが、例えば各HDD上の「チャンク」(例えば、266kB)となる。とりわけ、テトリスI/Oトランザクションは、RAIDグループの複数のストライプ(すなわち、2以上の行)にわたる場合がある。ファイルシステム240はさらに、SSDアレイ340の高速ランダム読出し実施能力を利用して、選択されたデータをストリーミング形態(例えば、テトリスI/Oトランザクションに従って)でHDDアレイ350へマイグレーション、又は移動し、それによってHDDの能力を向上させる。HDDアレイ350への大半のアクセスについてシーケンシャル形態、及びストリーミング形態でのHDDアレイ350の動作を可能にすることによって、ハイブリッド媒体ストレージアーキテクチャ300は、従来のストレージシステムに比べて低速で安価なHDDを使用し、より広い帯域幅、及びより少ない待ち時間性能をクライアントアプリケーション112に提供する。]
[0029] 一実施形態において、ログ構造ファイルシステム240は、例えば4kBブロックを使用したブロックベースのフォーマット表現を有するメッセージベースのシステムであって、インデックスノード(「inode」)を使用して、例えばファイルのようなデータコンテナを表現する。本明細書に記載するように、ログ構造ファイルシステムは、オブジェクト記憶(例えば、ファイルブロック番号)から物理記憶(例えば、物理ボリュームブロック番号)への自由なマッピングを実施する。媒体の空き記憶空間に書込みを行うための小さなアロケーション(例えば、4kB)を可能にするために、マッピングの粒度は、例えば、ブロック単位(「細かい粒度」)とされる。ただし、当業者に分かるように、ハイブリッド媒体ストレージアーキテクチャは、記憶装置において実施される如何なる種類のオブジェクトに対しても適用できるはずであり、ブロック単位の配置が可能となる細かい粒度を得るために十分なだけの変換を実施する。]
[0030] ファイルシステムはさらに、例えば種々のデータ構造を使用して、ヒューリスティック及びポリシーについての情報を記憶すると共に、アレイの記憶装置上でのそのレイアウトを表すメタデータを記憶する。ファイルシステム240は、SSDアレイ340のSSD330及びHDDアレイ350のHDD360のような記憶装置に記憶された情報に対するファイル単位のアクセスにおいて使用されるセマンティック機能を備える。さらに、ファイルシステムは、記憶された情報に対するブロック単位のアクセスにおいて使用されるボリューム管理機能を備える。すなわち、ファイルシステム240は、ファイルシステムセマンティック機能を有する他に、(i)記憶装置のアグレゲーション機能、(ii)記憶装置の記憶帯域幅のアグレゲーション機能、及び(iii)ミラーリング及び/又はパリティ(RAID)のような信頼性保証機能のような機能も備えている。]
[0031] 後者に関し、ログ構造ファイルシステム240はさらに、例えば媒体記憶層220のパリティ保護(RAID)モジュール320と協働し、SSDアレイ340及びHDDアレイ350に対する種々のストレージオペレーションを制御する。SSDアレイ340の場合、例えばアレイのSSDに関連する信頼性制御の階層が存在する。例えば、各SSD330は、ページ単位で誤り訂正符号(ECC)を有する場合がある。それによって、フラッシュブロック内のページについて、低レベルの信頼性制御が可能となる。複数のSSDの中でフラッシュブロックを実施し、デバイスの幾つかが故障したときにエラーから復旧できるようにした場合、より高レベルの信頼性制御がさらに実現される。]
[0032] この高レベルの信頼性制御は、例えば、RAIDモジュール320により構成されるRAIDレベル実施形態のような冗長構成として実施される場合がある。情報の記憶は、1以上のSSD/HDDを含む1以上のストレージボリュームとして実施されることが好ましく、SSD/HDDは互いに協働し、ボリューム(複数の場合もあり)上のボリュームブロック番号空間の全体的論理構成を規定する。その際、RAIDモジュール320は、ボリューム内のSSD/HDDを1以上のパリティグループ(例えば、RAIDグループ)として編成し、パリティ計算、及び各グループのSSD/HDDへのデータの配置に使用されるトポロジー情報を管理する。RAIDモジュールはさらに、それらのRAIDグループを例えば、RAID1、4、5、及び/又は6実施形態のような1以上のRAID実施形態に従って構成し、それによって、例えば1以上のSSD/HDDに対して故障のようなイベントが発生したときのSSD/HDDに対する保護を提供する。すなわち、RAID実施形態は、RAIDグループ内の所与の数のSSD/HDDにわたる「ストライプ状」のデータ書込み、及び当該ストライプ化されたデータに関する例えばパリティのような冗長情報の適切な記憶によって、データ記憶の信頼性/完全性を向上させる。]
[0033] SSDアレイ340の場合、RAIDモジュール320は例えば、複数のSSDを1以上のパリティグループ(例えば、RAIDグループ)として編成し、パリティ計算、及び各グループのデバイス上でのデータ配置に使用されるトポロジー情報を管理する。その目的のために、RAIDモジュールは、データをRAIDグループの中に、ブロックのストライプとして編成する。その際、1つのストライプは、種々のSSDにわたって対応する位置に配置された複数のフラッシュページを含む場合がある。すなわち、1つのストライプは、RAIDグループ全体にわたって、SSD0上の第1のページ0、及びSSD1上の第2のページ0等に分布する場合があり、パリティは、デバイスの種々のページに分散される場合がある。なお、他のRAIDグループ構成も可能であり、例えばファイル内の所定数のブロックごとに(例えば、8ブロックごとに)1つのブロックをパリティブロックにするような論理RAID実施形態を使用することも可能である。]
[0034] ボリュームは、仮想ボリュームとして実施され、例えばSSDアレイ340、及びHDDアレイ350の、1以上の集合体としてさらに編成される場合がある。集合体及び仮想ボリュームについては、「Extension of Write Anywhere File System Layout」と題するジョン・K・エドワード他によるネットワーク・アプライアンス・インコーポレイテッドに譲渡された米国特許第7,409,494号に記載されており、この米国特許は、参照により本明細書に援用される。簡単に言えば、集合体は、RAIDグループのようなSSD/HDDの1以上のグループからなり、グループは、ファイルシステムによって、ストレージシステムの1以上の仮想ボリューム(vvol)に分配される。各vvolは、ファイルシステムレイアウト実施形態の種々の技術を利用しながらも、「ポイント・イン・タイム」データイメージ(すなわち、スナップショット)オペレーション機能のような独自の論理的性質を有している。集合体は、独自の物理ボリュームブロック番号(pvbn)空間を有し、そのpvbn空間の中に、ブロックアロケーション構造のようなメタデータを保持する。各vvolは、独自の仮想ボリュームブロック番号(vvbn)空間を有し、そのvvbn空間の中に、ブロックアロケーション構造のようなメタデータを保持する。]
[0035] 各vvolには、そのvvolにより使用中のあらゆるブロックを保持する集合内の「隠し」(ユーザにとってアクセス不可な)ファイルである、コンテナファイルが関連付けられる。ファイルシステム240は、vvolに対する処理を実施するとき、RAIDモジュール320から提供されるトポロジー情報を使用して、vvbn(例えば、vvbn X)をSSD/HDD上のdbn位置に変換する。vvbnは、コンテナファイル内のファイルブロック番号(fbn)位置を識別し、コンテナファイル内のfbn Xの位置において、vvol内のvvbn Xを有するブロックを発見できるようにする。ファイルシステムは、コンテナファイルの間接ブロックを使用し、そのfbnを集合体内の物理vbn(pvbn)位置に変換する。その後、このブロックは、RAIDモジュール320により供給されるトポロジー情報を使用して、記憶装置から読み出すことができる。]
[0036] 一実施形態において、RAIDモジュール320は、データの書込みアロケーション、すなわち、SSDアレイ340、及びHDDアレイ350のvvbn記憶空間における空き空間、すなわち未割当て空間の探索を実施するときに、ファイルシステム240によって使用されるトポロジー情報をエキスポートする。トポロジー情報は例えば、pvbnとdbnの間のマッピングを含む。HDDアレイ350の場合、HDDは、ログ構造ファイルシステムの第2のデータレイアウトフォーマットに従って、関連(ファイル)データの領域に分配される。その後ファイルシステムは、後で詳しく説明するように、例えばデータが存在するHDD上のブロック位置を指定することによって、HDDの種々の領域内へのデータの配置を実施する場合がある。]
[0037] 具体的には、ログ構造ファイルシステム240の第2のレイアウトフォーマットは、関連ファイルデータをHDD上の種々の領域に配置する。各領域は、例えば連続したHDDブロックによって表される所定量のHDD記憶空間を有する。書込みアロケーションを実施する際にログ構造ファイルシステムによって使用される構造を考慮したブロックアロケーションは、第2のデータレイアウトフォーマットでデータをアレイ350に書き込むことを可能にするサイズを有する。例えば、少なくとも2つの領域は、1セットの関連ファイルデータ(ファイルA、ファイルAのスナップショット、ファイルAの重複除外など)を保持するための連続した範囲のfbnを有する。換言すれば、これらの領域は、HDD360上の比較的連続的なfbnの量によって特徴付けられる場合がある。この1セットの関連ファイルデータのいずれか一つに対してシーケンシャル読出し処理が実施される場合、そのデータのかなりの部分は、両方の領域から読み出される場合がある。]
[0038] SSDアレイ340の場合、書込みアロケーションを実施する際にログ構造ファイルシステムによって使用される構造を考慮したブロックアロケーションは、例えば連続的順序のような第1のデータレイアウトフォーマットでデータをアレイに書き込むことを可能にするサイズを有する。その目的のために、ファイルシステム240は、例えば書込みアロケーションを実施し、SSDコントローラ335と協働する場合がある。SSDコントローラ335は、(例えば、256kB)フラッシュブロックに対する連続的書込みを確保する働きをする。フラッシュブロックが消去され、「開放された」ものとして指定された後(例えば、空きvvbnとして)、データは、フラッシュブロックにおける64個の4kBページ(例えば、ページ0からページ63)を通して(CPの書込み処理に従って)順番に書き込まれ、その時点で、次の空きフラッシュブロックが取得され、ページ0からページ63まで順番に書込み処理が行われる場合がある。ファイルシステム240によって使用される例えば空きブロックマップのような会計構造は、例えばセグメントクリーニングプロセスによって管理され、一実施形態において、例えばブロック管理に関連して、SSDコントローラとの間で情報をやり取りする場合がある。]
[0039] 例えば、セグメントクリーニングは、フラッシュブロックに間接的にマッピングされた1以上の選択領域を開放するために実施される場合がある。有効データを有するそのような選択領域のページ(「有効ページ」)は、別の領域へ移動され、選択領域は、後続の再使用に備えて開放される。セグメントクリーニングは、断片化された空き空間を統合し、例えば基礎フラッシュブロックに対する、書込み能率を向上させる。このように、ファイルシステム240の動作を活用することにより、SSDアレイ340に対する例えばセグメントクリーニングのようなwrite anywhere機能を得ることができる。例えば、セグメントクリーニングプロセスは、ファイルシステム内で書込みアロケーターと共に動作するスキャナとして実施され、SSDを「クリーニング」(消去)するときに、バッファ及びinodeツリーを走査する(調べる)場合がある。]
[0040] 変換マッピング
上記のように、変換マッピングは、ハイブリッド媒体ストレージアーキテクチャ300の各SSDコントローラ335に関連する変換論理回路336によって実施される。ログ構造ファイルシステム240は、SSDアレイ340に対する書込みアロケーションを実施し、RAIDモジュール320と協働し、アレイに対するストレージオペレーションを制御する。従って、書込みデータをアレイ340上のどこに置くべきかを判断するために、vvbnとdbnの間のマッピングが必要となる。その後、変換マッピングは、dbnを基礎SSDアレイのフラッシュページアドレスに変換(すなわち、マッピング)するように構成される。SSDのユーザに提示されるdbnと、SSDアレイとの間に、直接的なマッピングではなく、そのような変換マッピングを作成する理由は、例えば、ウェアレベリング、及びランダム書込み処理能力の向上などである。]
[0041] ウェアレベリング
大まかに言えば、ウェアレベリングは、デバイスの度重なる消去及び書込みに起因するSSD330の故障を減らすために行われる。その目的のために、デューティサイクルは、例えば、1粒度の消去ブロックごとに計算される。すなわち、ある消去ブロックが何度も消去され、再書込みされた場合、SSD全体としては故障していなくても、各消去ブロックは故障する場合がある。本明細書において、ウェアレベリングとは、データがSSDアレイ340に書き込まれる場所を、特に各SSDに書き込まれる場所を、絶え間なく移動させることを意味する。仮に、SSDアレイの一部の場所が、他の部分に比べて激しく使用されるようになった場合、ウェアレベリングは、頻繁にアクセスされるデータをそれらの場所に書き込むことを禁止し、頻繁にアクセスされないデータをそれらの場所に移動させる。そして、頻繁にアクセスされるデータは、アレイの他の場所へ書き込まれる場合がある。]
[0042] 従って、及び一実施形態において、SSDコントローラ335の変換論理回路(例えば、SSDの内部で実施され、又はSSDアレイ上にソフトウェアとして実施される)は、消去ブロックマッピング粒度でウェアレベリングを実施するように構成される。一単位の消去ブロックが書込み処理によってアクセスされる度に、変換論理回路は、その消去ブロックをSSDアレイ340内の新たな位置に書込み(移動させ)、後続の書込み処理による再使用に備えて、そのブロックの以前の位置を利用可能にする。消去ブロックの磨耗に従ってSSDの記憶能力は失われるので、ウェアレベリングは、例えば、各置換可能ユニット(SSD)の中で行われる。ウェアレベリングは、SSDよりも高いレベルで実施される場合もあるが、そのようなウェアレベリングは、SSDの単なる種々の部分に対して実施されないことが重要である。なぜなら、そのようなウェアレベリングは、別の時点で別の場所を磨耗させることがあるからである。要するに、デバイスの種々のブロックが、多かれ少なかれ同時に磨耗することを確保するためには、ウェアレベリングは、SSD全体にわたるものであることが望ましい。]
[0043] ランダム書込み処理能力
SSDの第1のブロック内の特定の幾つかのページに対する書込み処理に応答し、(i)第2のブロックを消去し、(ii)ページ上の第1のブロックの最初にある古いデータを第2のブロックへ移動させ、(iii)第2のブロック内の移動されたデータの後ろの連続した位置に新たなデータを書込み、(iv)古いデータの残りを第1のブロックから第2のブロックへ移動させることからなる、従来のウェアレベリングを仮定する。さらに、新たなデータは、4kBの長さ(1ページ)であるものと仮定する。この書込み処理を実施するためには、新たに書き込まれるデータに比べてはるかに多くのデータ(例えば、256kB)が移動され、それによって、処理の能率は制限され、SSDの書込み処理能力も制限される。例えば、SSDが一秒あたり100MBの処理能力を備え、当該SSDに対して小さなランダムの4kB書込み処理が実施される場合、各ランダム書込み処理についてブロック全体をコピーしなければならないとすれば、SSDの書込み処理能力は、一秒当たり数メガバイトに制限される。]
[0044] ハイブリッド媒体ストレージアーキテクチャ300の変換マッピングをもっと能率的なものにするには、比較的大量の空き空間を有するブロックを探し出し、それらのブロックから不要なデータを消去し、ランダム書込み処理能力の向上を達成するログ構造技術が必要となる。従って、SSDコントローラ335の変換論理回路336は、消去ブロックの粒度(例えば、256kB)でのマッピングを行う代わりに、もっと小さな(「細かい」)粒度(例えば、4kB)でのマッピングを行う。例えば、新たなランダム書込みデータがSSDに到着すると、変換論理回路は、比較的大量の空き空間を有する消去ブロックを探し出し、その消去ブロックから他のブロック(同じオフセットにあるもの、又はそのブロックの最初)へ、全ての有効データをコピーする。その後、SSDコントローラ335は、全ての新たなデータ(dbnであるか否かに関わらず)をその消去ブロックに書き込む。とりわけ、変換論理回路は、データ(及び、その位置)の内部マッピングを管理する。すなわち、変換論理回路336は、間接ブロックの対応dbnを調べ、対応dbnをSSDアレイアドレスに変換し、さらに、期待ランダム書込み処理サイズ(例えば、4kB)と実質的に同じ粒度で変換を行う。]
[0045] ログ構造レイアウト機能
本明細書に記載するハイブリッド媒体ストレージアーキテクチャは、頻繁にアクセスされる(「人気のある」)データを(フラッシュデバイス又はSSDのような)比較的小さく比較的高速な記憶装置に置き、頻繁にはアクセスされない(「人気のない」)データを(SATAディスク又はHDDのような)比較的大きく比較的低速な記憶装置に置くように構成される。その目的のために、特定のデータは、ログ構造レイアウト機能を使用して、SDD/HDDハイブリッド記憶媒体上の特定の位置に、細かい粒度で自動的に配置される場合がある。本明細書において、ログ構造レイアウト機能とは、シーケンシャルアクセスを受けるデバイスにとって能率的なパターンでデータを書込むことを意味する。具体的には、ログ構造技術は、「時間局所性」を有する(すなわち、互いに近接した時間に実行され、例えばCPにおいて実行される)種々の書込み処理に関連するデータを、当該データがたとえクライアントから見たときにアドレス空間において「空間局所性」を有していない場合でも、変換を利用して、媒体上の「空間局所性」を有するレイアウトに変換する(例えば、テトリスI/Oトランザクションの結果として)。すなわち、クライアントは、そのデータをランダム化すべきものと考える。ただし、データは、ストレージシステムにおいて非常に近接した時間に受信され、又はストレージシステムによって一緒にデステージされたものであるから、より優れた書込み処理能力を装置から引き出すために、データは、装置上の近接する(すなわち、空間局所性を有する)永久記憶媒体に書き込まれる。]
[0046] ログ構造機能を採用することによって、ハイブリッド媒体ストレージアーキテクチャは、無関係(ランダム)な書込み処理に関連するデータを、媒体からの書込み処理能力を引き出すために有効パターンを成すように媒体にフラッシュする(書き込む)ことができる(すなわち、ログ構造機能は、媒体への能率的な記憶を行うために、ランダム書込み処理をシーケンシャル書込み処理に変換する)。HDDの場合、可能な限り少ない回数のディスクの回転で、十分な量のデータが、ディスク上の種々の位置(例えば、RAIDグループにおける各トラック)に書き込まれる(例えば、そのグループの種々のストライプにわたるデータ処理のコストを償却するために)。SSDの場合、データを一斉に書き込むことは余り適当ではなく、データは、一回の消去ブロック書込みサイクルでデータを書き込むことが可能な特定のシーケンス、すなわち順序で書き込まれることが望ましい。]
[0047] ハイブリッド媒体ストレージアーキテクチャは、ログ構造ファイルシステムを使用して、SSD上のデータに対するシーケンシャル読出し処理、及びHDD上のデータに対するシーケンシャル読出し処理を含む読出し処理能力の問題に対処する。SSDは、書込み能率に関しては、ディスクに類似する特性を有するが、読出し処理に関しては、ディスクに類似する特性を有しない(すなわち、SSDは、能率を高めるためには、大量のデータを一箇所に書き込まなければならない)。すなわち、フラッシュメモリのようなSSDは、種々のページのランダム読出し処理の際に、同ページに対するシーケンシャル読出し処理と同じ処理能力を発揮する。また、読出し処理の場合、SSDは、実質的にフラッシュページ粒度でランダムアクセスされ、書込み処理の場合、SSDは、フラッシュブロック粒度でシーケンシャルアクセスされる。従って、SSDは一般に、良好な書込み処理能力を達成するためには局所性を必要とするが、良好な読出し処理能力を達成するために局所性を必要とすることはない。]
[0048] データのマイグレーション
本発明の一態様によれば、ハイブリッド媒体ストレージアーキテクチャは、ストレージシステムのハイブリッド記憶媒体間におけるvvbnのマイグレーションを利用することができる。例えば、ログ構造ファイルシステム240が、ランダム書込み処理作業負荷サービスを提供し、最初に、関連ランダムデータをSSDアレイ340のSSD330に置くものと仮定する。このとき、HDDアレイ350のHDD360上のランダムデータに対して割当てられた記憶空間は、何も無い場合がある。その後、そのランダムデータが「人気の無い」ものになると(すなわち、ある程度の時間にわたってアクセスされないと)、他の「人気の有る」データをSSDに記憶することが望ましくなる。なお、「人気の無い」又は「人気のある」といったデータの分類は、例えば、そのデータが最後にアクセスされたときを示すポリシーによって決定される。もし、人気の無いデータを収容することが可能な以前に割当てられた記憶空間がHDD上に無い場合、ログ構造ファイルシステムは、そのような空間を割当て、例えばHDDに関連するデータ構造を使用して、データをマイグレーション(移動)する。]
[0049] 具体的には、ファイルシステム240は、どのブロックをSSDアレイ340のSSDから移動させるべきか、及びどのパターンを使用して、それらのブロックをHDDアレイのHDDに書き込むべきかを決定する。一実施形態において、関連ファイルデータを有するブロックは、HDD上の連続した範囲のfbnを有する少なくとも2つの領域内に配置される。ログ構造ファイルシステムは、SSD上の人気の無くなったブロックを識別すると、まずそのブロックの識別情報を決定し(すなわち、そのブロックが、特定fbn範囲内の特定ファイルに関連するものと判断し)、その後、そのブロックに密接に関連する他のブロックのうち、同じく人気が無くなったものであって、かつ、例えばテトリスI/Oトランザクションにおいて一緒にHDDへ移動させてもよいものが有るか否かを、(すなわち、ある領域内におけるブロックの編成について)判断する。とりわけ、これらの判断は、HDDのdbn空間に基いて行われるのではなく、ファイルシステムのfbn空間に基いて行われる。SSDからHDDへブロックを移動させるためには、vvbnとpvbnの間のブロックのマッピングを変更する。ただし、どのブロックを移動させるかの判断は、ブロックのpvbnに基いて行われるのではなく、ブロックのfbn、及びブロックを共有すること可能なファイル間の関係に基いて行われる。]
[0050] SSDからHDDへデータを移動すべきことが決定されると、ファイルシステム240は、例えば、自身のコンシステンシー・モデル・イベント(すなわち、CP)を使用して、データを移動させる。バックグラウンドプロセスは、SSD上のデータを検査し、人気が無いこと(すなわち、ある程度の時間にわたってアクセスされていないこと)又は何らかの他のポリシーを理由として、どのデータを移動すべきかに関する判断を実施する。例えば、識別された人気の無いデータは、SSDから読み出され、メモリ124にロードされ、人気の無いデータをHDD上の適当な領域へ送るために、CPが実施される。この適当な領域は、例えば後で詳しく説明するスナップショットの場合と同様に、fbnを含むタグ、及び同じブロックを共有することが可能な異なるファイル間の関係を使用して、決定される場合がある。ログ構造ファイルシステムは、例えば同じデータ構造を使用して、人気の無いデータをHDDに書込み、同じデータ構造を使用して、SSDに記憶された関連ブロックを探索し、識別する。それらのデータ構造は、領域内のブロックの位置を示すvvbn、及びpvbnを含む。とりわけ、データブロックのvvbnとpvbnの両方が、fbn間接ブロックレベルで記憶される。]
[0051] SSDアレイ340のSSDにおいて、1以上の人気の無いデータブロックが識別され、不要なデータが除去された後、HDDアレイ350のHDDへ移動されるものと仮定する。ただし、細かく見れば、開放されたSSDブロック位置が再使用されるまで、データは、両方の位置(HDDとSSD)に存在する。メタデータに記憶されるpvbnは、SSDブロック位置を依然として参照していることがあるので、読出し処理は、このSSDpvbnを読出し、所望のデータが依然としてそこに有ることを確かめることによって、「キャッシュヒット」からの有効な恩恵を受けることができる。重要な点は、ファイルメタデータに記憶されるpvbnは、パフォーマンスヒントであるのに対し、vvbnは、pvbnが所望のデータを既に参照していないときにデータを探すために使用される信頼出来る情報である点である。コンテナファイルメタデータは、vvbnを信頼出来る情報にマッピングすることに留意すべきである。]
[0052] 換言すれば、SSD上のあるpvbnにあるデータブロックから不要なデータを除去し、そのデータブロックをHDD上の別のpvbnへ移動させるとき、ファイルについての間接ブロックを変更し、HDD上のpvbnを更新するまでには、特定の時間を要する。その間、間接ブロックは、依然として、そのデータブロックがSSDにあることを示している(pvbnによって)。従って、その間にファイルがアクセスされた場合、ファイルシステムは、たとえそのデータブロックの「正式」な位置がHDD上であったとしても、そのデータブロックをSSDから読み出すことが出来る。ファイルシステムは、アーキテクチャのこの態様を利用して、ハイブリッド媒体ストレージシステムの種々の部分に、キャッシュに類似した動作をさせることができる。]
[0053] 例えば、ハイブリッド媒体ストレージアーキテクチャは、ランダム書込み処理を最適化するために、SSD上に、ある量の空き空間を保持する場合がある。ただし、SSD上のその空き空間のブロック位置をファイルシステムが上書きするまでは、それらのブロック位置にある古いデータは、依然として有効であり、アクセスすることができる。ハイブリッド媒体ストレージアーキテクチャは、SSD上のこの空き記憶空間を使用して、ランダム書込み処理能力の向上を達成することができる。従って、ファイルシステムは、アーキテクチャのこの性質を利用して、HDDへのアクセスに伴う待ち時間(すなわち、HDDに対する1以上のI/O処理)を回避する。]
[0054] 別の例として、スナップショットが、ログ構造ファイルシステム240によって生成され、SSDアレイ340のSSDに記憶されるものと仮定する。スナップショットの一例は、2002年6月27日に発行された「Instant Snapshot」と題するブレイク・ルイス他による米国特許出願公開第US2002/0083037A1号に記載されており、この出願は、参照により本明細書に援用される。データについてのfbnとvvbnの間のマッピングは、いったんスナップショットとして撮影された後は、不変になる。ただし、vvbnとpvbnの間のマッピングは、変更することができ、ハイブリッド媒体ストレージアーキテクチャは、この変更を利用して、スナップショットブロックの移動の抑制という従来技術の制限を克服することができる。すなわち、あるブロックがある位置にいったん記憶され、スナップショット化された後、その内容を上書きすることは出来ないので、そのスナップショットブロックは、以前に移動されたものではない。ただし、vvolに関連するvvbnとpvbnの間の変換は、スナップショットによって変更することが出来る。換言すれば、スナップショットは、fbnとvvbnの間の変換は不変にするが、vvbnとpvbnの間の変換は変更可能な状態のままにする。この変換の変更可能レベルによって、例えばSSDにある古いスナップショットデータをHDDへ移動させる能力が得られ、それによって、新たなデータを記憶するために高価なSSD上の空間を空けることができ、新たなデータは、フラッシュ記憶装置の高いアクセス特性(例えば、1ギガバイト当たりのI/O)から恩恵を受けることができる。]
[0055] ハイブリッド媒体ストレージシステムの動作
図4は、本発明によるストレージシステムのハイブリッド媒体ストレージアーキテクチャの例示的動作手順を示すフロー図である。手順400は、ステップ402から開始され、ステップ404へ進み、そこで、クライアントによって、データコンテナ(例えば、ファイル)に対するデータアクセス要求、例えば、書込み命令が発行され、ストレージシステムにおいて受信される。ステップ406において、ログ構造ファイルシステムは、例えば書込み命令に関連する書込みデータを有するファイルに変更を加えることによって、書込み命令を処理する。] 図4
[0056] ステップ408において、ログ構造ファイルシステムは、書込み命令を検査し、例えばランダム書込みデータ、又は大きなシーケンシャル書込みストリームデータといったデータのタイプを識別し、そのデータを記憶する媒体を決定する。ステップ410において、ログ構造ファイルシステムは、ポリシー制御を実施し、そのデータを最初に比較的高速で高価なSSDに(又は、比較的低速で安価なHDDに直接)記憶すべきか否かを判断する(データのタイプに基いて)。なお、ファイルシステムは、ランダムアクセス処理に関連するデータが、最初にSSDに記憶されるようにするためのヒューリスティックをさらに実施する場合がある。例えば、SSDに記憶するのにふさわしい候補となるデータタイプは、頻繁にアクセスされる性質と、ランダムにアクセスされる性質との両方を有する。もしデータが、ランダムにアクセスされないものであるか、又は人気の無いものである場合、そのデータは、HDDに記憶するのにふさわしい候補となる。なぜなら、そのデータに対するその後のアクセスは、SSDの高い処理能力特性を必要としないからである。例えば、ヒューリスティックは、大きなシーケンシャル書込みストリーム処理に関連するデータが、将来的にシーケンシャルアクセス(読出し、又は書込み)されるであろうことを示す場合があり、その場合、データはHDDに直接記憶される。]
[0057] もし、データをHDDに直接記憶すべき旨の判断がなされた場合、ログ構造ファイルシステムは、ステップ412において、例えばシステムのコンシステンシー・モデル・イベント(CP)の際に、そのデータをHDDに書き込む。そして、手順はステップ429において終了する。一方、データをSSDに記憶すべき旨の判断がなされた場合、ログ構造ファイルシステムは、ステップ414において、CPの際に、そのデータをSSDに書き込む。その後、ステップ416において、SSDに記憶されたデータのタイプを分析し、ステップ418において、選択されたデータをSSDからHDDへ移動すべき旨の判断がなされる。ステップ420において、選択されたデータは、メモリに取り出され(読み出され)、ステップ422において、ファイルシステムは、CPの際に、そのデータをHDDの1以上の領域に記憶する(書き込む)。とりわけ、ファイルシステムは、本明細書に記載するハイブリッド媒体ストレージアーキテクチャのログ構造技術に従って、データのブロック粒状配置の概念を両方の媒体上に保持する。そして、手順はステップ429において終了する。]
[0058] ストレージシステムのハイブリッド記憶媒体を制御するように構成されたログ構造ファイルシステムを有するハイブリッド媒体ストレージアーキテクチャの例示的実施形態について図示説明したが、本発明の思想及び範囲の中で、種々の他の変形及び修正を施すことも可能であるものと考えられる。例えば、一又は複数の実施形態において、アーキテクチャは、比較的大きなブロックサイズ/粒度を目的とする書込み処理を実施するように構成されたログ構造レイアウト機能を実施する場合があり、それによって、本明細書に記載するものより「低い能力」しか有しないSSDからも、向上されたパフォーマンスを引き出すことができる。例えば、ログ構造書込みアロケーションを使用することにより、アーキテクチャは、大きな書込み処理サイズの場合に十分な空き空間を有するフラッシュ媒体の種々の領域を選択する書込みアロケーション方法を使用しながらも、空きブロックをきめ細かく追跡することができる。]
[0059] さらに、本明細書に記載する例示的ストレージシステム構成は、「RAID集合体」構成においてウェアレベリングを実施するための理想的な目的達成手段ではない場合もある。すなわち、本明細書に開示する例示的実施形態は、RAIDモジュールを、一群のRAIDグループにつき1つのログ構造ファイルシステムのみを提供するものとして説明しているが、単一グループのHDD/SSDにわたる複数のファイルシステム及び複数のLUNのロードバランスを取ることが望ましい場合もある。図5は、本発明と共に有利に使用されるRAID集合体を示す略ブロック図である。RAID集合体500は、例えば、複数の(例えば、ログ構造)ファイルシステム520を提供する機能を備えた設備である。すなわち、RAID集合体は、複数の基礎デバイス(SSD540、及び/又はHDD550)を集結する機能を備えた従来のRAIDコントローラとして動作し、基礎デバイスの記憶空間は、LUNのような複数のコンテナとしてファイルシステムに提示される。とりわけ、各置換ユニット(SSD)が均等に磨耗するようにするために、(各ファイルシステム520における)ログ構造書込みアロケーションとは別に、(各SSD540において)ウェアレベリングが実施される。従って、もし1以上のSSDが、複数のファイルシステム間によって共有される場合、ファイルシステムレベルでウェアレベリングを実施することは適当でない。ファイルシステムレベルでウェアレベリングを実施することも可能ではあるが、システムにファイルシステムが1つしか存在しない場合、そのような構成では、アーキテクチャの規模を複数のファイルシステムへ拡大することは出来ないであろう。] 図5
[0060] 上記の説明は、本発明の特定の実施形態に関するものである。しかしながら、当然ながら、記載した実施形態の一部又は全てを維持しつつも、記載した実施形態に対して他に種々の変形及び変更を施すことが可能である。例えば、当然ながら、本明細書に記載する構成要素、及び/又は構造は、コンピュータ上で実行されるプログラム命令を含むコンピュータ読取可能媒体としても、ハードウェアとしても、ファームウェアとして、あるいはそれらの組み合わせとしても実施することができる。従って、本明細書の説明は、単なる例として捉えるべきものであり、本発明の範囲を何ら制限するものではない。従って、添付の特許請求の範囲の目的は、そうした変形や変更もすべて、本発明の真の思想及び範囲に含めることにある。]
权利要求:

請求項1
固体デバイス(SSD)及びハードディスクドライブ(HDD)を含むハイブリッド記憶媒体として編成され、互いに協調し、ストレージシステムの全体的記憶空間を提供する複数の記憶媒体と、データの初期配置及びマイグレーションを実施すると共に、前記ハイブリッド記憶媒体の複数の記憶空間位置の間におけるデータの書込みアロケーションを実施し、前記媒体のパフォーマンス特性を向上させるように構成されたファイルシステムとからなるストレージシステム。
請求項2
前記ファイルシステムは、ログ構造ファイルシステムである、請求項1に記載のストレージシステム。
請求項3
前記ファイルシステムは、前記データを前記媒体の何れかに最初に書き込むヒューリスティック及びポリシーを実施し、その後、きめ細かな粒度で、手動施行を必要とすることなく、前記データを前記媒体の間で移動させるようにさらに構成される、請求項1に記載のストレージシステム。
請求項4
前記ヒューリスティック及びポリシーは、前記ファイルシステムによって処理されるデータのタイプを対象とする、請求項3に記載のストレージシステム。
請求項5
前記HDDは、前記ファイルシステムのデータレイアウトフォーマットに従って、関連データの領域に分配される、請求項1に記載のストレージシステム。
請求項6
前記ファイルシステムは、前記データが存在する前記HDD上のブロック位置を指定することによって、前記HDDの領域内へのデータの配置を実施する、請求項5に記載のストレージシステム。
請求項7
前記ファイルシステムは、ログ構造技術をさらに使用し、前記SSDのランダム書込み処理能力を向上させ、前記SSDと前記HDDとの間できめ細かくデータを移動させる、請求項6に記載のストレージシステム。
請求項8
前記ファイルシステムと協働し、前記SSD、及び前記HDDに対するストレージオペレーションを制御するように構成されたパリティ保護モジュールをさらに含む、請求項1に記載のストレージシステム。
請求項9
前記パリティ保護モジュールは、RAIDモジュールである、請求項8に記載のストレージシステム。
請求項10
各SSDについてSSDコントローラをさらに含み、前記SSDコントローラは、デバイスブロック番号(dbn)に換算したSSDのサイズを含むジオメトリー情報を前記RAIDモジュールにエキスポートするように構成される、請求項9に記載のストレージシステム。
請求項11
dbnは、前記SSDコントローラが前記RAIDモジュールに提示する論理アドレスであり、前記SSDコントローラの変換論理回路による変換マッピングを受けて、前記SSDの物理アドレスに変換される、請求項10に記載のストレージシステム。
請求項12
前記変換論理回路は、前記SSDの度重なる消去及び書込みに起因する前記SSDの故障を低減するために、ウェアレベリングを実施するように構成される、請求項11に記載のストレージシステム。
請求項13
前記変換論理回路は、書込み処理による消去ブロックのアクセスに応答し、前記消去ブロックを前記SSD上の新たな場所へ移動させ、前記ブロックの以前の場所を、後続の書込み処理により再使用できるようにする、請求項12に記載のストレージシステム。
請求項14
前記RAIDモジュールは、前記SSDを1以上のパリティグループとして編成し、パリティ計算、及び各グループの前記SSDへのデータの配置に使用されるトポロジー情報を管理するように構成される、請求項8に記載のストレージシステム。
請求項15
ストレージシステムのハイブリッド記憶媒体として編成された複数の記憶媒体であって、前記ハイブリッド記憶媒体が、SSDアレイの固体デバイス(SSD)及びHDDアレイのハードディスクドライブ(HDD)を含む、複数の記憶媒体と、前記ハイブリッド記憶媒体を制御するファイルシステムであって、前記SSDアレイに対するランダムデータアクセス処理のサービスを可能にするために、前記SSDに記憶されたデータコンテナに対する書込みアクセスを可能にする第1のデータレイアウトフォーマットを有するファイルシステムとを含み、前記ファイルシステムは、前記HDDアレイに記憶されたデータのサービスを可能にするために、前記HDDに記憶された大きなデータコンテナに対する連続的な読出しアクセスを可能にする第2のデータレイアウトフォーマットをさらに有する、装置。
請求項16
前記ファイルシステムは、前記SSDアレイ、及び前記HDDアレイに対する読出し処理能力、及び書込み処理能力を向上させるデータレイアウト技術をさらに実施する、請求項15に記載の装置。
請求項17
前記データレイアウト技術は、前記SSDアレイのSSD上の空きの利用可能な空間にあるどこかへのデータの配置を可能にするためのwriteanywhere技術の第1のセットを含む、請求項16に記載の装置。
請求項18
前記データレイアウト技術は、データをHDDアレイのHDDへ連続的に移動させる技術の第2のセットを含む、請求項17に記載の装置。
請求項19
ストレージシステムのファイルシステムにおいて、当該ストレージシステムに記憶されたデータコンテナに対する書込み命令を処理するステップと、前記ファイルシステムにおいて前記書込み命令を検査し、前記書込み命令に関連するデータのタイプを識別するステップであって、前記データのタイプが、ランダム書込みデータと、大きなシーケンシャル書込みストリームデータとのいずれか一方を含む、検査し識別するステップと、前記データのタイプがランダム書込みデータであった場合、前記書込み命令に関連する前記ランダム書込みデータをSSDアレイの固体デバイス(SSD)に最初に記憶するステップと、前記データのタイプが大きなシーケンシャル書込みストリームデータであった場合、前記書込み命令に関連する前記大きなシーケンシャル書込みストリームデータをHDDアレイのハードディスクドライブに記憶するステップとからなる方法。
請求項20
前記SSD上に記憶された選択されたデータを前記HDDへ移動させるステップをさらに含む、請求項19に記載の方法。
請求項21
前記選択されたデータを移動させるステップは、前記選択されたデータを前記SSDから前記ストレージシステムのメモリに読み出すステップと、読み出された前記選択されたデータを前記HDDの1以上の領域に記憶するステップとをさらに含む、請求項20に記載の方法。
类似技术:
公开号 | 公开日 | 专利标题
JP6709245B2|2020-06-10|Adaptive persistence system, method, interface
US10365838B2|2019-07-30|N-way merge technique for updating volume metadata in a storage I/O stack
US10289545B2|2019-05-14|Hybrid checkpointed memory
US10540343B2|2020-01-21|Data object attribute based event detection in a storage system
US9619160B2|2017-04-11|NVRAM data organization using self-describing entities for predictable recovery after power-loss
US20170185512A1|2017-06-29|Specializing i/o access patterns for flash storage
US9767017B2|2017-09-19|Memory device with volatile and non-volatile media
US9471248B2|2016-10-18|Snapshots and clones of volumes in a storage system
US9563654B2|2017-02-07|Dense tree volume metadata organization
EP3191957B1|2018-07-18|Low-overhead restartable merge operation with efficient crash recovery
US9619351B2|2017-04-11|Clustered RAID assimilation management
US10013311B2|2018-07-03|File system driven raid rebuild technique
JP6212137B2|2017-10-11|Storage device and storage device control method
US9983993B2|2018-05-29|Apparatus, system, and method for conditional and atomic storage operations
US9483349B2|2016-11-01|Clustered raid data organization
US10152381B1|2018-12-11|Using storage defragmentation function to facilitate system checkpoint
US9170899B2|2015-10-27|Reliability scheme using hybrid SSD/HDD replication with log structured management
JP5918906B2|2016-05-18|Storage apparatus and storage control method
JP6124902B2|2017-05-10|ストレージシステムにおける可変長符号化
US9842053B2|2017-12-12|Systems and methods for persistent cache logging
US9075710B2|2015-07-07|Non-volatile key-value store
US20170269980A1|2017-09-21|Methods to identify, handle and recover from suspect ssds in a clustered flash array
US8943265B2|2015-01-27|Storage array controller
US8521949B2|2013-08-27|Data deleting method and apparatus
US9323465B2|2016-04-26|Systems and methods for persistent atomic storage operations
同族专利:
公开号 | 公开日
CA2714745A1|2009-08-20|
EP2263145A1|2010-12-22|
JP2014041645A|2014-03-06|
JP5827662B2|2015-12-02|
US20110035548A1|2011-02-10|
WO2009102425A1|2009-08-20|
EP2263145B1|2020-02-05|
US9134917B2|2015-09-15|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题
法律状态:
2012-08-30| A977| Report on retrieval|Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120830 |
2012-09-12| A131| Notification of reasons for refusal|Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120911 |
2012-12-12| A601| Written request for extension of time|Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20121211 |
2012-12-19| A602| Written permission of extension of time|Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20121218 |
2013-03-12| A521| Written amendment|Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130311 |
2013-03-12| A524| Written submission of copy of amendment under section 19 (pct)|Free format text: JAPANESE INTERMEDIATE CODE: A524 Effective date: 20130311 |
2013-06-26| A02| Decision of refusal|Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20130625 |
优先权:
申请号 | 申请日 | 专利标题
[返回顶部]